home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ShareWare OnLine 2
/
ShareWare OnLine Volume 2 (CMS Software)(1993).iso
/
util2
/
sutl.zip
/
SECTORXL.BAS
< prev
next >
Wrap
BASIC Source File
|
1993-03-01
|
3KB
|
75 lines
100 ' SECTORXL.BAS -- PAUL SOMERSON
110 ' TRANSLATES DOS/BIOS SECTOR NUMBERING SCHEMES BACK AND FORTH
120 ' (C) 1988 ZIFF COMMUNICATIONS CO.
130 '
140 ' --- SETUP ---
150 '
160 DIM D$(7):DEF FNST$(Y)=RIGHT$(STR$(Y),LEN(STR$(Y))-SGN(Y)+(Y=0))
170 BSEC$="BIOS SECTOR NUMBER"
180 BTRA$="BIOS TRACK NUMBER"
190 BSID$="BIOS SIDE NUMBER"
200 D$(1)="1-SIDED, 160K"
210 D$(2)="1-SIDED, 180K"
220 D$(3)="2-SIDED, 320K"
230 D$(4)="2-SIDED, 360K"
240 D$(5)="2-SIDED, 1.2M"
250 D$(6)="2-SIDED, 740K"
260 D$(7)="2-SIDED, 1.44M"
270 S$=STRING$(43,205)+CHR$(13)
280 ' --- GET DISK TYPE ---
290 '
300 COLOR 15:CLS:PRINT TAB(3);"ENTER TYPE OF DISKETTE (1-7):":PRINT
310 FOR A=1 TO 7:PRINT TAB(6);A;"-- ";D$(A):NEXT
320 I$=INKEY$:IF I$="" THEN 320 ELSE J=INSTR("1234567",I$)
330 ON J GOTO 350,360,370,380,390,400,410
340 GOTO 320
350 S=0:SS=8:MT=39:MS=319:GOTO 450
360 S=0:SS=9:MT=39:MS=359:GOTO 450
370 S=1:SS=8:MT=39:MS=639:GOTO 450
380 S=1:SS=9:MT=39:MS=719:GOTO 450
390 S=1:SS=15:MT=79:MS=2399:GOTO 450
400 S=1:SS=9:MT=79:MS=1439:GOTO 450
410 S=1:SS=18:MT=79:MS=2879
420 '
430 ' --- MAIN MENU ---
440 '
450 CLS
460 PRINT CHR$(13);S$;TAB(3);"1. START WITH DOS NUMBERS"
470 PRINT TAB(3);"2. START WITH BIOS NUMBERS"
480 PRINT TAB(3);"3. CHANGE DISK TYPE FROM ";D$(J)
490 PRINT TAB(3);"4. CLEAR SCREEN"
500 PRINT TAB(3);"5. QUIT":PRINT S$
510 I$=INKEY$:IF I$="" THEN 510
520 IF I$="5" THEN END ELSE IF I$="3" THEN 300 ELSE IF I$="4" THEN 450
530 I=INSTR("BB2DD1",I$)
540 IF I=0 THEN 510 ELSE IF I<4 THEN 700
550 '
560 ' --- DOS2BIOS ---
570 '
580 PRINT "ENTER DOS SECTOR NUMBER (0-";FNST$(MS);:LINE INPUT;"): ",DS$
590 IF DS$="" THEN 450
600 DS=VAL(DS$):IF DS>MS THEN BEEP:PRINT:GOTO 580
610 IF DS=0 THEN PRINT "0" ELSE PRINT
620 PRINT S$;TAB(3);"(FOR ";D$(J);" DISKETTE):"
630 PRINT TAB(3);BSEC$;": ",1+DS MOD SS
640 PRINT TAB(3);BTRA$;": ",DS\(SS*(S+1))
650 PRINT TAB(3);BSID$;": ",(DS\SS) MOD (S+1)
660 GOTO 460
670 '
680 ' --- BIOS2DOS ---
690 '
700 PRINT "ENTER ";BSEC$;" (1-";FNST$(SS);:LINE INPUT;"): ",SE$
710 IF SE$="" THEN 450
720 SE=VAL(SE$):IF SE<1 OR SE>SS THEN BEEP:PRINT:GOTO 700
730 IF SE=0 THEN PRINT "0" ELSE PRINT
740 PRINT "ENTER ";BTRA$;" (0-";FNST$(MT);:LINE INPUT;"): ",TR$
750 TR=VAL(TR$):IF TR>MT THEN BEEP:PRINT:GOTO 740
760 IF TR=0 THEN PRINT "0" ELSE PRINT
770 IF J<3 THEN SI=S:GOTO 810
780 PRINT "ENTER ";BSID$;" (0-1";:LINE INPUT;"): ",SI$
790 SI=VAL(SI$):IF SI>S THEN BEEP:PRINT:GOTO 780
800 IF SI=0 THEN PRINT "0" ELSE PRINT
810 PRINT S$;TAB(3);"(FOR ";D$(J);" DISKETTE):"
820 PRINT TAB(3);"DOS SECTOR";(SE-1)+SI*SS+TR*SS*(S+1)
830 GOTO 460